JSON Schema Validation

Java Technologies - অর্গ.জেসন (Org.Json)
92
92

JSON Schema হল একটি ডেটা কাঠামো (data structure) যা JSON ডেটার বৈধতা পরীক্ষা (validation) করার জন্য ব্যবহৃত হয়। এটি JSON ডেটা ফাইল বা অবজেক্টের গঠন, টাইপ, এবং কনটেন্ট যাচাই করার একটি শক্তিশালী উপায়। JSON Schema ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে একটি JSON ডেটা স্ট্রাকচার একটি নির্দিষ্ট কাঠামো অনুসরণ করছে কিনা এবং তা প্রত্যাশিত ডেটা টাইপ বা মান ধারণ করছে কিনা।

JSON Schema কি?

JSON Schema হল একটি ডিজাইন প্যাটার্ন যা JSON ডেটার কাঠামো এবং মান নির্ধারণ করে। এটি JSON ডেটার গঠন (structure), ডেটা টাইপ (data types), এবং শর্তাবলী (constraints) সম্পর্কে একটি নির্দিষ্ট নীতি বা নিয়ম তৈরি করে। JSON Schema কনফিগারেশন ফাইল হিসেবে JSON ডেটার প্রত্যাশিত বৈশিষ্ট্য বা ফর্ম্যাট সরবরাহ করে, এবং এটি JSON ডেটা সঠিকভাবে গঠন করা হয়েছে কিনা তা যাচাই করতে ব্যবহৃত হয়।

JSON Schema Validation কেন প্রয়োজন?

JSON ডেটার ভ্যালিডেশন করার মাধ্যমে আপনি নিশ্চিত করতে পারেন যে:

  • JSON ডেটার কাঠামো সঠিক এবং প্রত্যাশিত।
  • ডেটার মানগুলি সঠিক ধরনের (string, number, boolean, array ইত্যাদি)।
  • JSON ডেটায় কোনও অতিরিক্ত বা অনুপস্থিত ফিল্ড নেই।
  • JSON ডেটায় নির্দিষ্ট শর্তাবলী অনুসরণ করা হচ্ছে (যেমন একটি ফিল্ড অবশ্যই পূর্ণ থাকতে হবে)।

JSON Schema Validation কীভাবে কাজ করে?

JSON Schema Validation সাধারণত দুটি ধাপে কাজ করে:

  1. JSON Schema তৈরি: একটি JSON Schema ফাইল তৈরি করা হয়, যা JSON ডেটার কাঠামো এবং বিধিনিষেধ নির্ধারণ করে।
  2. JSON ফাইলের ভ্যালিডেশন: JSON ডেটা একটি JSON Schema দ্বারা পরীক্ষা করা হয়, এবং যদি ডেটা স্কিমা অনুযায়ী না হয়, তবে ত্রুটি (error) প্রদর্শিত হয়।

org.json লাইব্রেরি এবং JSON Schema Validation

বর্তমানে org.json লাইব্রেরি সরাসরি JSON Schema Validation সাপোর্ট করে না। তবে, আপনি JSON Schema Validator নামে অন্য কিছু লাইব্রেরি ব্যবহার করতে পারেন, যেমন Everit JSON Schema বা FasterXML Jackson JSON Schema এর জন্য। এর মাধ্যমে আপনি JSON ডেটার জন্য স্কিমা তৈরি এবং যাচাই করতে পারবেন।

উদাহরণ: JSON Schema Validation একটি বাইরের লাইব্রেরি ব্যবহার করে

এখানে একটি উদাহরণ দেওয়া হয়েছে যেখানে Everit JSON Schema লাইব্রেরি ব্যবহার করে JSON ডেটা ভ্যালিডেশন করা হচ্ছে।

  1. Maven ডিপেনডেন্সি (Everit JSON Schema)
<dependency>
    <groupId>org.everit.json</groupId>
    <artifactId>everit-json-schema</artifactId>
    <version>1.14.1</version>
</dependency>
  1. JSON Schema তৈরি করা

এখানে একটি সাধারণ JSON Schema তৈরি করা হয়েছে, যা একটি অবজেক্টের মধ্যে name এবং age ফিল্ড থাকতে হবে এবং name স্ট্রিং এবং age একটি পূর্ণসংখ্যা (integer) হতে হবে।

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "age": {
      "type": "integer"
    }
  },
  "required": ["name", "age"]
}
  1. JSON ডেটা তৈরি করা

এখন একটি JSON ডেটা তৈরি করা হবে যা যাচাই করা হবে:

{
  "name": "John Doe",
  "age": 30
}
  1. JSON Schema Validation কোড
import org.everit.json.schema.*;
import org.json.JSONObject;
import org.json.JSONTokener;

import java.io.InputStream;

public class JSONSchemaValidationExample {
    public static void main(String[] args) {
        try {
            // JSON Schema ফাইল লোড করা
            InputStream schemaStream = JSONSchemaValidationExample.class.getResourceAsStream("/schema.json");
            JSONObject jsonSchema = new JSONObject(new JSONTokener(schemaStream));
            
            // JSON Schema তৈরি করা
            Schema schema = SchemaLoader.load(jsonSchema);

            // JSON ডেটা লোড করা
            String jsonData = "{\"name\":\"John Doe\",\"age\":30}";
            JSONObject jsonObject = new JSONObject(jsonData);
            
            // JSON ডেটা যাচাই করা
            schema.validate(jsonObject);  // কোনো JSONException থ্রো হবে না, মানে JSON ডেটা বৈধ
            
            System.out.println("JSON is valid against the schema.");
        } catch (ValidationException e) {
            // JSON ডেটা স্কিমার সাথে মেলেনি
            System.out.println("JSON is invalid: " + e.getMessage());
        }
    }
}

কোডের ব্যাখ্যা

  1. SchemaLoader.load(): এটি JSON স্কিমা লোড করার জন্য ব্যবহার করা হয় এবং একটি Schema অবজেক্ট তৈরি করে।
  2. schema.validate(): এটি JSON ডেটা স্কিমার সাথে যাচাই করে। যদি JSON ডেটা স্কিমার সাথে মেলে, তাহলে কিছু হবে না। যদি স্কিমার সাথে মেল না খায়, তবে এটি একটি ValidationException থ্রো করবে।

আউটপুট:

JSON is valid against the schema.

এটি দেখায় যে JSON ডেটাটি স্কিমার সাথে সঠিকভাবে মিলেছে।


JSON Schema Validation এর সুবিধা

  1. ডেটার ইনটেগ্রিটি রক্ষা: JSON স্কিমার মাধ্যমে আপনি নিশ্চিত করতে পারেন যে ডেটা সঠিক কাঠামো এবং বৈধ মান অনুসরণ করছে।
  2. বিভিন্ন সিস্টেমের মধ্যে সমন্বয়: JSON Schema ব্যবহার করলে একাধিক সিস্টেমের মধ্যে ডেটার বিনিময় আরও নির্ভরযোগ্য ও সহজ হয়।
  3. ডেটার সঠিকতা পরীক্ষা: JSON Schema ডেটার কাঠামো এবং শর্তাবলী পরীক্ষা করতে সাহায্য করে, যা ডেটার ভুল ব্যবহারের থেকে সুরক্ষা প্রদান করে।

সারাংশ

JSON Schema Validation JSON ডেটার বৈধতা যাচাই করার একটি শক্তিশালী উপায়। এটি নিশ্চিত করে যে ডেটা সঠিক কাঠামো এবং টাইপ অনুসরণ করছে। org.json লাইব্রেরি সরাসরি JSON Schema Validation সাপোর্ট না করলেও, আপনি অন্যান্য লাইব্রেরি যেমন Everit JSON Schema ব্যবহার করে JSON ডেটার স্কিমা ভ্যালিডেশন সহজেই সম্পাদন করতে পারেন। JSON Schema Validation ডেটার সঠিকতা এবং গুণমান নিশ্চিত করতে সাহায্য করে, যা ওয়েব অ্যাপ্লিকেশন এবং API ডেভেলপমেন্টে খুবই গুরুত্বপূর্ণ।


Content added By

JSON Schema কি এবং এর প্রয়োজনীয়তা

68
68

JSON Schema হল একটি স্ট্রাকচারাল ডেসক্রিপশন ফরম্যাট যা JSON ডেটার গঠন এবং বৈধতা নির্ধারণ করে। এটি JSON ডেটার স্ট্রাকচার, ডেটা টাইপ, মানের সীমা, এবং অন্যান্য বৈশিষ্ট্য নির্ধারণ করতে ব্যবহৃত হয়। JSON Schema ব্যবহার করে আপনি একটি নির্দিষ্ট JSON ডেটা স্ট্রাকচারের সঠিকতা যাচাই করতে পারেন, যা ডেটার সঠিকতা এবং নির্ভুলতা নিশ্চিত করে।

JSON Schema কি?

JSON Schema একটি JSON অবজেক্ট যা JSON ডেটার গঠন এবং বৈধতা সংজ্ঞায়িত করে। এটি নির্দিষ্ট করে দেয় যে, একটি JSON ডকুমেন্টে কোন কী থাকতে হবে, কিভাবে সেগুলি থাকতে হবে (যেমন ডেটা টাইপ, মানের সীমা ইত্যাদি), এবং ডেটার বিভিন্ন প্রপার্টি কেমন হতে হবে।

JSON Schema এর মূল উদ্দেশ্য হলো:

  1. ডেটার গঠন নির্ধারণ: এটি নির্দিষ্ট করে যে একটি JSON অবজেক্টে কোন কী থাকতে হবে এবং প্রতিটি কী-র জন্য বৈধ মান কী হবে।
  2. ডেটার বৈধতা যাচাই করা: এটি JSON ডেটার সঠিকতা যাচাই করতে ব্যবহৃত হয়, যেমন ফিল্ডগুলির টাইপ, মানের সীমা, এবং প্রয়োজনীয় ফিল্ড থাকা।
  3. ডেটা ইন্টিগ্রেশন সহজ করা: JSON Schema অন্য সিস্টেমের মধ্যে JSON ডেটার ইন্টিগ্রেশন সহজ করে, কারণ এটি ডেটার গঠন নির্ধারণ করে এবং ডেটার বিশ্লেষণ এবং যাচাই করার পদ্ধতি সরবরাহ করে।

JSON Schema এর উপাদানসমূহ

JSON Schema সাধারণত নিম্নলিখিত উপাদানসমূহ নিয়ে গঠিত:

  • properties: JSON অবজেক্টের কী এবং তাদের মানের বৈশিষ্ট্য (যেমন ডেটা টাইপ, মিনিমাম মান, ইত্যাদি) নির্ধারণ করে।
  • required: কীগুলি যেগুলি ডেটাতে অবশ্যই থাকতে হবে তা নির্ধারণ করে।
  • type: কী-এর জন্য অনুমোদিত ডেটা টাইপ (যেমন string, integer, boolean) নির্ধারণ করে।
  • items: JSON অ্যারে এর উপাদানের জন্য স্কিমা নির্ধারণ করে।
  • additionalProperties: JSON অবজেক্টে অন্য কোন অতিরিক্ত কী অনুমোদিত হবে কি না তা নির্ধারণ করে।

উদাহরণ: JSON Schema

ধরা যাক, একটি JSON অবজেক্টের মধ্যে "name", "age", এবং "email" নামক ফিল্ড থাকবে। আমরা এই JSON অবজেক্টের জন্য একটি JSON Schema তৈরি করতে পারি:

JSON Data Example

{
  "name": "John Doe",
  "age": 30,
  "email": "john.doe@example.com"
}

JSON Schema Example

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string"
    },
    "age": {
      "type": "integer",
      "minimum": 18
    },
    "email": {
      "type": "string",
      "format": "email"
    }
  },
  "required": ["name", "age", "email"]
}

এখানে:

  • $schema: এটি JSON Schema ডকুমেন্টের সংস্করণ সংজ্ঞায়িত করে।
  • type: এটি ডেটার টাইপ নির্ধারণ করে, যেমন এখানে object দেওয়া হয়েছে।
  • properties: JSON অবজেক্টের ভেতরের কীগুলির টাইপ এবং অন্যান্য বৈশিষ্ট্য নির্ধারণ করা হয়।
  • required: কোন কীগুলি অবশ্যই JSON অবজেক্টে থাকা উচিত, যেমন "name", "age", এবং "email" এখানে দেওয়া হয়েছে।
  • minimum: এটি নির্ধারণ করে যে "age" কীগুলির জন্য সর্বনিম্ন মান কি হবে (এখানে 18)।
  • format: এটি JSON ডেটার জন্য নির্দিষ্ট ফরম্যাট নির্ধারণ করে, যেমন "email" এখানে "email" ফরম্যাটে নিশ্চিত করা হয়েছে।

JSON Schema এর প্রয়োজনীয়তা

  1. ডেটার সঠিকতা যাচাই করা: JSON Schema ব্যবহার করে JSON ডেটার সঠিকতা এবং বৈধতা যাচাই করা সম্ভব। এটি নিশ্চিত করে যে আপনার ডেটা কাঠামো এবং প্রপার্টিগুলি ঠিকভাবে ফর্ম্যাট করা আছে এবং সঠিক মান ধারণ করছে।

    উদাহরণস্বরূপ, যদি একটি ডেটা ফিল্ডের জন্য নির্দিষ্ট ডেটা টাইপ (যেমন string, integer) বা সীমা (যেমন minimum: 18) দেওয়া থাকে, তবে JSON Schema সেই ডেটার বৈধতা যাচাই করতে সহায়তা করে।

  2. ডেটা গঠন ও ডেভেলপমেন্ট: যখন একটি সিস্টেম বা অ্যাপ্লিকেশন বিকাশ করা হয়, JSON Schema ডেভেলপারদের মধ্যে ডেটার কাঠামো সহজে ভাগ করতে সাহায্য করে। এটি স্পষ্টভাবে ডেটার কাঠামো এবং প্রপার্টি নির্ধারণ করে, যা অ্যাপ্লিকেশন ডেভেলপমেন্টে সহায়তা করে।
  3. ডেটার ইন্টিগ্রেশন: বিভিন্ন সিস্টেমের মধ্যে ডেটা শেয়ার এবং ইন্টিগ্রেশন করার সময় JSON Schema ব্যবহার করে ডেটার গঠন সহজে বুঝে ফেলা যায় এবং ডেটা ইন্টিগ্রেট করা সহজ হয়ে ওঠে।
  4. ডেটা ভ্যালিডেশন এবং নিরাপত্তা: JSON Schema ডেটার ভ্যালিডেশন প্রক্রিয়াকে শক্তিশালী করে, কারণ এটি নিশ্চিত করে যে ইনপুট ডেটা সঠিকভাবে ফরম্যাট করা এবং প্রয়োজনীয় ফিল্ডগুলি উপস্থিত আছে। এর মাধ্যমে নিরাপত্তা ঝুঁকি কমানো যায়।
  5. স্বয়ংক্রিয় ডকুমেন্টেশন: JSON Schema ব্যবহার করে আপনি স্বয়ংক্রিয়ভাবে JSON ডেটার ডকুমেন্টেশন তৈরি করতে পারেন, যা ডেটার গঠন এবং বৈশিষ্ট্য বুঝতে সাহায্য করে।

JSON Schema Validation

JSON ডেটা JSON Schema এর সাথে যাচাই করতে আপনি বিভিন্ন লাইব্রেরি ব্যবহার করতে পারেন। Java-তে org.everit.json.schema বা json-schema-validator লাইব্রেরি JSON স্কিমা বৈধতা যাচাই করতে ব্যবহৃত হতে পারে।

সারাংশ

JSON Schema JSON ডেটার স্ট্রাকচার, বৈধতা এবং অন্যান্য বৈশিষ্ট্য নির্ধারণের জন্য একটি গুরুত্বপূর্ণ টুল। এটি ডেটার সঠিকতা যাচাই করতে সাহায্য করে, ডেটার গঠন এবং ডেভেলপমেন্ট প্রক্রিয়াকে আরও সহজ করে এবং ডেটার ইন্টিগ্রেশন এবং নিরাপত্তা নিশ্চিত করে। JSON Schema ব্যবহার করে আপনি ডেটার সাথে কাজ করার সময় ভুল এবং অপ্রত্যাশিত ফলাফল থেকে রক্ষা পেতে পারেন।

Content added By

Org.JSON দিয়ে JSON ডেটা ভ্যালিডেশন করা

79
79

JSON ডেটা ভ্যালিডেশন একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটার সঠিকতা এবং কাঠামো যাচাই করার জন্য ব্যবহৃত হয়। যখন আপনি JSON ডেটা পার্স বা প্রসেস করেন, তখন নিশ্চিত হওয়া প্রয়োজন যে ডেটা সঠিক ফরম্যাটে রয়েছে এবং প্রত্যাশিত কাঠামো অনুসরণ করছে। Org.JSON লাইব্রেরি JSON ডেটা ভ্যালিডেশনের জন্য কিছু সহজ এবং কার্যকরী উপায় প্রদান করে।

এই টিউটোরিয়ালে, Org.JSON লাইব্রেরি ব্যবহার করে JSON ডেটার ভ্যালিডেশন করার বিভিন্ন পদ্ধতি দেখানো হবে।


১. অবজেক্ট সঠিকভাবে তৈরি হয়েছে কিনা চেক করা

প্রথম ধাপে আমরা যাচাই করব যে একটি JSON অবজেক্ট সঠিকভাবে তৈরি হয়েছে কিনা, অর্থাৎ JSON স্ট্রিংটি সঠিকভাবে পার্স হয়েছে কিনা। Org.JSON লাইব্রেরি আপনাকে JSONException দিতে পারে যদি JSON স্ট্রিংটি অবৈধ হয়।

উদাহরণ: অবৈধ JSON স্ট্রিং ভ্যালিডেশন

import org.json.JSONException;
import org.json.JSONObject;

public class JSONValidationExample {
    public static void main(String[] args) {
        // অবৈধ JSON স্ট্রিং (অতিরিক্ত কমা)
        String jsonString = "{\"name\":\"Alice\",\"age\":25,}";

        try {
            // JSON স্ট্রিং পার্স করা
            JSONObject jsonObject = new JSONObject(jsonString);
            System.out.println("Valid JSON: " + jsonObject);
        } catch (JSONException e) {
            // JSONException হ্যান্ডলিং
            System.out.println("Invalid JSON format: " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা

  • JSONException: যদি JSON স্ট্রিং অবৈধ হয় (যেমন অতিরিক্ত কমা বা ভুল ফরম্যাট), তখন JSONException উত্তোলিত হবে।
  • try-catch block: JSON স্ট্রিং পার্স করার সময় ত্রুটি হলে আমরা এটি catch করে ব্যাখ্যা দেখাতে পারি।

আউটপুট:

Invalid JSON format: A JSONObject text must begin with '{' at 1 [character 2 line 1]

এখানে, অবৈধ JSON স্ট্রিংয়ের জন্য JSONException হ্যান্ডল করা হয়েছে এবং ত্রুটির বার্তা প্রদর্শিত হয়েছে।


২. JSON অবজেক্টে কীগুলোর উপস্থিতি যাচাই করা

JSON অবজেক্টের মধ্যে নির্দিষ্ট কী রয়েছে কিনা তা যাচাই করা একটি সাধারণ ভ্যালিডেশন প্রক্রিয়া। Org.JSON লাইব্রেরি has() মেথড ব্যবহার করে JSON অবজেক্টে কীগুলোর উপস্থিতি পরীক্ষা করতে সাহায্য করে।

উদাহরণ: কী উপস্থিতি যাচাই করা

import org.json.JSONObject;

public class JSONKeyValidationExample {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String jsonString = "{\"name\":\"Bob\",\"age\":30}";

        // JSON স্ট্রিং পার্স করা
        JSONObject jsonObject = new JSONObject(jsonString);

        // কী উপস্থিতি চেক করা
        if (jsonObject.has("name")) {
            System.out.println("Name: " + jsonObject.getString("name"));
        } else {
            System.out.println("Key 'name' is missing.");
        }

        if (jsonObject.has("address")) {
            System.out.println("Address: " + jsonObject.getString("address"));
        } else {
            System.out.println("Key 'address' is missing.");
        }
    }
}

কোড ব্যাখ্যা

  • has() মেথড: এটি JSON অবজেক্টে একটি নির্দিষ্ট কী উপস্থিত কিনা তা যাচাই করে।
  • যদি "name" কী পাওয়া যায়, তাহলে তার মান প্রিন্ট করা হবে। যদি না পাওয়া যায়, তবে "Key 'name' is missing." বার্তা দেখানো হবে।

আউটপুট:

Name: Bob
Key 'address' is missing.

এখানে, has() মেথড ব্যবহার করে address কী অনুপস্থিত হওয়া সত্ত্বেও ত্রুটি ফেলে না, বরং একটি কাস্টম বার্তা দেখায়।


৩. ডেটা টাইপ যাচাই করা

JSON অবজেক্টের একটি কীর মানের টাইপ যাচাই করা প্রয়োজন হতে পারে, যেমন যদি কোনো কী integer, string, boolean ইত্যাদি টাইপে থাকে। Org.JSON লাইব্রেরি getType() মেথড সরবরাহ করে, যা নির্দিষ্ট কী-এর ডেটা টাইপ পরীক্ষা করতে সহায়ক।

উদাহরণ: ডেটা টাইপ যাচাই করা

import org.json.JSONObject;

public class JSONDataTypeValidationExample {
    public static void main(String[] args) {
        // JSON স্ট্রিং
        String jsonString = "{\"name\":\"Alice\",\"age\":25,\"isEmployed\":true}";

        // JSON স্ট্রিং পার্স করা
        JSONObject jsonObject = new JSONObject(jsonString);

        // ডেটা টাইপ যাচাই করা
        if (jsonObject.get("age") instanceof Integer) {
            System.out.println("Age is of type Integer");
        } else {
            System.out.println("Age is not of type Integer");
        }

        if (jsonObject.get("name") instanceof String) {
            System.out.println("Name is of type String");
        } else {
            System.out.println("Name is not of type String");
        }

        if (jsonObject.get("isEmployed") instanceof Boolean) {
            System.out.println("Employment status is of type Boolean");
        } else {
            System.out.println("Employment status is not of type Boolean");
        }
    }
}

কোড ব্যাখ্যা

  • instanceof: এটি চেক করতে ব্যবহৃত হয় যে কোনো কীর মান নির্দিষ্ট টাইপের কিনা, যেমন Integer, String, Boolean ইত্যাদি।
  • যদি টাইপ সঠিক হয়, তাহলে নির্দিষ্ট বার্তা দেখানো হবে।

আউটপুট:

Age is of type Integer
Name is of type String
Employment status is of type Boolean

এখানে, ডেটা টাইপ যাচাইয়ের মাধ্যমে নিশ্চিত হওয়া গেছে যে প্রতিটি কী সঠিক টাইপের।


৪. অ্যারে টাইপ JSON ডেটার ভ্যালিডেশন

JSON অ্যারে ভ্যালিডেশনের সময়, অ্যারের মধ্যে প্রতিটি অবজেক্ট বা ভ্যালু নির্দিষ্ট কাঠামোর (structure) অনুসরণ করছে কিনা তা যাচাই করা গুরুত্বপূর্ণ। উদাহরণস্বরূপ, অ্যারের মধ্যে থাকা JSON অবজেক্টের কীগুলোর উপস্থিতি এবং ডেটা টাইপ পরীক্ষা করা।

উদাহরণ: JSON অ্যারে ভ্যালিডেশন

import org.json.JSONArray;
import org.json.JSONObject;

public class JSONArrayValidationExample {
    public static void main(String[] args) {
        // JSON অ্যারে স্ট্রিং
        String jsonArrayString = "[{\"name\":\"John\",\"age\":28},{\"name\":\"Alice\",\"age\":25}]";

        // JSON অ্যারে পার্স করা
        JSONArray jsonArray = new JSONArray(jsonArrayString);

        // অ্যারের প্রতিটি অবজেক্টের জন্য কীগুলোর উপস্থিতি যাচাই
        for (int i = 0; i < jsonArray.length(); i++) {
            JSONObject jsonObject = jsonArray.getJSONObject(i);

            if (jsonObject.has("name") && jsonObject.has("age")) {
                System.out.println("Valid object at index " + i + ": " + jsonObject);
            } else {
                System.out.println("Invalid object at index " + i);
            }
        }
    }
}

কোড ব্যাখ্যা

  • JSONArray: এটি JSON অ্যারে ডেটাকে পার্স করে এবং তার মধ্যে থাকা প্রতিটি অবজেক্টের ভ্যালিডেশন করা হয়।
  • has(): প্রতিটি অবজেক্টের মধ্যে "name" এবং "age" কীগুলোর উপস্থিতি যাচাই করা হয়েছে।

আউটপুট:

Valid object at index 0: {"name":"John","age":28}
Valid object at index 1: {"name":"Alice","age":25}

এখানে, JSON অ্যারের প্রতিটি অবজেক্টে কীগুলোর উপস্থিতি যাচাই করা হয়েছে এবং সেগুলোর ভ্যালিডেশন করা হয়েছে।


সারাংশ

Org.JSON লাইব্রেরি ব্যবহার করে JSON ডেটা ভ্যালিডেশন করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যা JSON ডেটার কাঠামো এবং সঠিকতা যাচাই করার জন্য অপরিহার্য। এই টিউটোরিয়ালে JSON স্ট্রিং পার্সিং, কী উপস্থিতি যাচাই, ডেটা টাইপ যাচাই, এবং JSON অ্যারে ভ্যালিডেশন সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে। JSONException হ্যান্ডলিংয়ের মাধ্যমে অবৈধ JSON স্ট্রিংয়ের ক্ষেত্রে নিরাপত্তা নিশ্চিত করা যায়, এবং has() মেথড এবং instanceof এর মাধ্যমে কী-এর উপস্থিতি এবং ডেটা টাইপ যাচাই করা যায়।


Content added By

উদাহরণ সহ JSON Schema Validation

104
104

JSON Schema হল একটি কাঠামো যা JSON ডেটার বৈধতা পরীক্ষা করতে ব্যবহৃত হয়। এটি JSON ডেটা স্ট্রাকচার এবং তার মানের জন্য একটি গাইডলাইন প্রদান করে, যেমন কী ধরনের ডেটা কিভাবে আছেতো, কোন ক্ষেত্রগুলো আবশ্যক, মানের ধরণ ইত্যাদি। JSON Schema Validation প্রক্রিয়া JSON ডেটার মান যাচাই করতে সাহায্য করে, যাতে ডেটা স্ট্রাকচার সঠিক এবং প্রত্যাশিত হয়।

Org.JSON লাইব্রেরি, নিজে সরাসরি JSON Schema Validation সাপোর্ট না করলেও, এটি সহজেই Java তে JSON Schema Validation করার জন্য অন্যান্য লাইব্রেরির সাথে কাজ করতে পারে, যেমন org.everit.json.schema। এই লাইব্রেরিটি JSON Schema এবং JSON ডেটা যাচাই করার জন্য একটি সাধারণ উপায় প্রদান করে।

JSON Schema Validation কিভাবে কাজ করে?

JSON Schema মূলত JSON ডেটা স্ট্রাকচারের ধরন, কাঠামো এবং আঙ্গিকের সাথে সম্পর্কিত বিধিনিষেধ তৈরি করে। JSON ডেটা Schema এর নিয়ম অনুসারে না হলে, এটি বৈধ হবে না।

JSON Schema তৈরি করা

JSON Schema একটি স্ট্রিং আকারে বা JSON অবজেক্ট হিসেবে লেখা হয়, যেখানে ডেটা স্ট্রাকচারের ধরন ও নিয়মাবলী উল্লেখ করা হয়।

উদাহরণ: JSON Schema তৈরি এবং JSON ডেটা যাচাই করা

এখানে আমরা একটি উদাহরণ দেখব যেখানে org.everit.json.schema লাইব্রেরি ব্যবহার করে JSON Schema Validation করা হচ্ছে।

১. JSON Schema তৈরি

ধরা যাক আমাদের একটি JSON ডেটা রয়েছে, যা ব্যবহারকারীর তথ্য ধারণ করে। আমরা এর জন্য একটি JSON Schema তৈরি করব যা ডেটার ধরন এবং কাঠামো যাচাই করবে।

JSON Schema (user_schema.json)

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "age": {
            "type": "integer",
            "minimum": 18
        },
        "email": {
            "type": "string",
            "format": "email"
        }
    },
    "required": ["name", "age", "email"]
}

এখানে:

  • name, age, এবং email প্রপার্টি আবশ্যক।
  • age এর জন্য ন্যূনতম ১৮ বছর হতে হবে।
  • email ফরম্যাটটি একটি বৈধ ইমেইল ঠিকানা হতে হবে।

২. JSON ডেটা উদাহরণ

{
    "name": "John Doe",
    "age": 25,
    "email": "john.doe@example.com"
}

এটি একটি সঠিক JSON ডেটা যেখানে name, age, এবং email ফিল্ড রয়েছে, এবং এর মান JSON Schema এর নিয়ম অনুযায়ী সঠিক।

৩. JSON Schema Validation কোড (Java)

এখন আমরা Java কোডে org.everit.json.schema লাইব্রেরি ব্যবহার করে JSON Schema Validation প্রক্রিয়া সম্পন্ন করব। প্রথমে আপনাকে org.everit.json.schema এবং org.json লাইব্রেরি মাভেন (Maven) বা গ্রেডল (Gradle) থেকে ইমপোর্ট করতে হবে।

Maven Dependency

<dependency>
    <groupId>org.everit.json</groupId>
    <artifactId>org.everit.json.schema</artifactId>
    <version>1.14.0</version>
</dependency>

Java কোড: JSON Schema Validation

import org.json.JSONObject;
import org.everit.json.schema.Schema;
import org.everit.json.schema.loader.SchemaLoader;
import org.everit.json.schema.ValidationException;
import java.io.InputStream;

public class JSONSchemaValidationExample {
    public static void main(String[] args) {
        // JSON ডেটা
        String jsonData = "{ \"name\": \"John Doe\", \"age\": 25, \"email\": \"john.doe@example.com\" }";
        JSONObject jsonObject = new JSONObject(jsonData);

        // JSON Schema লোড করা
        InputStream schemaStream = JSONSchemaValidationExample.class.getResourceAsStream("/user_schema.json");
        JSONObject jsonSchema = new JSONObject(new JSONTokener(schemaStream));

        // Schema তৈরি
        Schema schema = SchemaLoader.load(jsonSchema);

        try {
            // JSON ডেটা স্কিমার সাথে যাচাই করা
            schema.validate(jsonObject);
            System.out.println("JSON ডেটা বৈধ!");
        } catch (ValidationException e) {
            // যদি JSON ডেটা অবৈধ হয়
            System.out.println("ভুল: " + e.getMessage());
        }
    }
}

কোড ব্যাখ্যা:

  1. JSON ডেটা: JSON ডেটা JSONObject আকারে তৈরি করা হয়।
  2. Schema লোড করা: JSON Schema ফাইলটি লোড করে একটি JSONObject আকারে ইনপুট দেওয়া হয়।
  3. SchemaLoader: SchemaLoader.load() মেথডের মাধ্যমে JSON Schema লোড করা হয়।
  4. Validation: schema.validate(jsonObject) মেথডের মাধ্যমে JSON ডেটা স্কিমার সাথে যাচাই করা হয়। যদি ডেটা বৈধ হয়, তবে "JSON ডেটা বৈধ!" মেসেজ আসে, আর যদি কোনো ভুল থাকে তবে তা ধরিয়ে দেওয়া হয়।

আউটপুট:

JSON ডেটা বৈধ!

সারাংশ

JSON Schema Validation JSON ডেটার কাঠামো এবং ভ্যালিডিটি পরীক্ষা করতে একটি শক্তিশালী পদ্ধতি। org.everit.json.schema লাইব্রেরি Java তে JSON Schema ব্যবহার করে সহজে JSON ডেটার বৈধতা যাচাই করতে সহায়তা করে। এই প্রক্রিয়াটি নিশ্চিত করে যে, JSON ডেটা নির্দিষ্ট কাঠামো এবং নিয়ম মেনে তৈরি হয়েছে, যা সার্ভার বা অন্যান্য সিস্টেমে ব্যবহারের জন্য উপযুক্ত।

Content added By
Promotion